// pages/me/me.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: { //用于保存当前用户数据
      nickName: '点击登录',
      isLogin: false //用户名是否登录
    },
  },
  /* 点击图片，上传头像 */
  tapImage() {
    if (!this.data.isLogin) return;
    wx.chooseMedia({
      count: 1,
      camera: 'front',
      mediaType: ['image'],
      success: (res) => {
        console.log('选择图片', res)
        let path = res.tempFiles[0].tempFilePath
        let userInfo = this.data.userInfo
        userInfo.avatarUrl = path
        this.setData({
          userInfo
        })
        this.uploadFile(path)
      }
    })
  },
  uploadFile(path) {
    let ext = path.substring(path.lastIndexOf('.'))
    let name = 'avatar_' + Math.random() + '-' + (new DataCue().getTime())
    let cloudPath = name + ext
    wx.cloud.uploadFile({
      filePath: path,
      cloudPath: cloudPath,
      success: (res) => {
        console.log('上传文件', res)
        let fileID = res.fileID //返回的访问图片公网链接
        // 将fileID上传数组库的图片avatarUrl字段
        this.updateUserInfo(fileID)
      }
    })
  },
  //修改users集合中当前用户的avatarUrl字段
  updateUserInfo(fileID){
    let _id=this.data.userInfo._id
    db.collection('users').doc(_id).update({
      data:{
        avatarUrl:fileID
      },
      success:(res)=>{
        console.log('获取头像路径',res)
        wx.showToast({
          title: '头像修改成功',
          icon:'success',
          duration:1000
        })
      }
    })
  },
  /* 点击登录 */
  tapLogin() {
    if (this.data.isLogin) return;
    wx.getUserProfile({
      lang: 'zh_CN',
      desc: '速度点击允许',
      success: (res) => {
        console.log('获取用户信息：', res)
        this.setData({
          userInfo: res.userInfo,
          isLogin: true
        })
        //维护自己家数据库
        this.login()
      }
    })
  },

  /** 执行自定义的登录业务
   *  查询云数据users集合，看有没有以前注册的信息
   *  1.如果有：则直接获取，重新更新界面
   *  2.如果没有 
   * 
   */
  login() {
    let db = wx.cloud.database()
    db.collection('users').get().then(res => {
      console.log('查询用户数据', res)
      if (res.data.length == 0) { //第一次进入，进行注册
        this.regist()
      } else { //之前注册过，重新获取用户数据，更新界面
        let userInfo = res.data[0]
        this.setData({
          userInfo
        })
      }
    })
  },
  /* 执行注册业务 */
  regist() {
    let db = wx.cloud.database()
    db.collection('users').add({
      data: this.data.userInfo
    }).then(res => {
      console.log('注册用户', res)
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})